/*->h.view */

#define VINFOSIZE 24


typedef struct 
{
 fstat        stat;                /* contains short name       */

 char         lname[128];          /* local file name           */
 char         rname[128];          /* remote file name          */

 char         typs[16];            /* sprite name - need this   */
 char         tiny[16];

 int          x;                   /* on screen position        */
 int          y;
        
 int          icon;                /* icon number               */
 int          unused1;             /* string icon               */

 char         text[64];            /* text for file             */
 char         info[VINFOSIZE];     /* ftp info for this file    */
 char         sys[16];             /* from whence it came       */

 arctime      otime;               /* time file was opened      */
 arctime      ctime;               /* time file was closed      */

 char         protocol;            /* protocol used for ftp     */
 char         state;               /* being sent ?              */
 char         temporary;           /* only exists here          */
 char         selected;            /* selected ?                */

} ficon;




/* c.viewhi */

#define BATN     2

#define MINENTRY 4


#define TXBFILE  0
#define RXBFILE  1


#define DIR  0x1000
#define APP  0x2000
#define CODE 0x3000


extern int    display;                       /* default display */
extern int    sort;                          /* default sort    */


extern int    display;                       /* default display */
extern int    sort;                          /* default sort    */


extern int    viewsaveref;


extern int    view;

extern int    viewopenref;


extern ficon * vtable[BATN];
extern char  * vname[BATN];
extern int     vnofiles[BATN]; 
extern int     vobject[BATN];
extern int     viewhandle[BATN];          /* window handle for this view */
extern int     vactive[BATN];
extern int     viewxn[BATN];
extern int     viewdisp[BATN];
extern int     viewsort[BATN];


extern const   int flwidth[3];
extern const   int hmargin[3];
extern const   int vmargin[3];
extern const   int height[3];



#define TEXTW 1024

#define WIDTH   flwidth[viewdisp[view]]
#define HMARGIN hmargin[viewdisp[view]]
#define HEIGHT  height[viewdisp[view]]
#define VMARGIN vmargin[viewdisp[view]]

extern const int flwidth[3];
extern const int hmargin[3];
extern const int vmargin[3];
extern const int height[3];



extern void opendir(void);

extern int  getcsub(void);

extern int getinfo(char * string);

extern int noindir(int posn);
extern int hds(int posn);
extern void closeview(int v);
extern void adjust(int posn,int delta);
extern void trashicons(int v);
extern void setnofiles(int i,int size);
extern void refreshview(int change);
extern void refreshvv(int v);
extern void wrnarc(FILE * fp);
extern int  getsublen(void);
extern void writetextdata(int posn);
extern void rebop(void);
extern void dragicon(int mx,int my,int w,int i);
extern void dragselect(int mx,int my,int w,int i);
extern int  parentof(int child);
extern void selectone(void);
extern int  selected(int * posn);
extern int  openview(void);

extern void unselectall(void);
extern void selectall(void);

extern void viewicon(void);

extern void openvwimp(void);
extern void closevwimp(void);
extern void viewack(void);
extern void viewsave(void);

extern void refreshallviews(void);


/* c.viewlo */

extern void calcposns(void);
extern void createicons(void);
extern int  getview(int window);   /* set vdi and file off current window */
extern void bootfile(void);

/* c.viewtx */

extern void writetypest(char * string,int posn);
extern void writetype(int window,int icon,int posn);
extern void writenu(int window,int icon,int value);
extern void writens(char * string,int val);
extern void writepc(char * string,int val1,int val2);

extern void insertentry(int posn,ficon * fi,int ow);
extern void deleteentry(int posn,int del);

extern int  dynamview(void);
extern int  dynamviewnames(void);
extern void popview(void);

extern void viewupdatetexticon(int posn);
extern void extractdragend(void);

extern void decodeview(int m1,int m2,int m3);

extern void setsprites(int posn);
extern void setspritesr(int posn);

extern void viewredraw(void);
